package com.neusoft.bizcore.auth.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.neusoft.bizcore.auth.common.bean.UserBean;
import com.neusoft.bizcore.auth.dto.AuthUserCreateUpdateDTO;
import com.neusoft.bizcore.auth.dto.AuthUserDTO;
import com.neusoft.bizcore.web.support.Searchable;

public interface AuthUserService {
    List<AuthUserDTO> findAll(final Searchable searchable);

    UserBean loadUserByUsername(String username);

    Page<AuthUserDTO> search(Pageable pageable, Searchable searchable);

    AuthUserDTO details(final Long id);

    List<AuthUserDTO> details(final List<String> users);

    AuthUserDTO create(final AuthUserCreateUpdateDTO dto);

    AuthUserDTO create(final AuthUserDTO dto);

    AuthUserDTO update(final Long id, final AuthUserCreateUpdateDTO dto);

    void delete(final Long id);

    void resetPass(final long id, final String password);

    boolean checkOldPassword(final long id, final String oldPassword);

}
